CloudFront マネージドプレフィックスリストをセキュリティグループのインバウンドルールに設定してエラーが発生した場合の対処方法
困っていた内容
CloudFront のオリジンに EC2 を利用しています。インターネットから EC2 への直接のアクセスを禁止して、EC2 へのアクセスは CloudFront を経由したものだけにしたいです。
EC2 で利用しているセキュリグループのインバウンドルールに CloudFront マネージドプレフィックスリストを指定することで上記の要件を実現したいのですが、インバウンドルールに CloudFront マネージドプレフィックスリストを追加すると以下のエラーが発生してルールの追加ができません。
本エラーが発生する原因と解決策を教えてください。
「セキュリティグループのインバウンドルールの変更中にエラーが発生しました」
詳細:The maximum number of rules per security group has been reached.
原因
CloudFront のマネージドプレフィックスをセキュリテイグループルールで利用した場合、セキュリグループ内で 55 のルールとして扱われます。
デフォルトでセキュリティグループに登録できるインバウンドルールが 60 までである為、既にインバウンドルールにおいて 6 以上のルールが設定してある場合、本エラーが発生します。
Amazon CloudFront用のAWS マネージドプレフィックスリストを使用したオリジンへのアクセス制限
セキュリティグループのデフォルトのクォータは 60 ルールであり、インバウンドルールでCloudFront マネージドプレフィックスリストを 1 つ追加した場合、5 ルールしか追加できる余地がありません。
解決策
セキュリティグループ当たりのインバウンドルールまたはアウトバウンドルールの数に対して上限申請をすることで、60 以上のインバンドルールをセキュリティグループルールに設定することができます。
申請は、マネジメントコンソール上の Service Quotas から可能です。
なお、ルートテーブルにおいて CloudFront のプレフィックスリストを使用する場合は、必ずルートの上限申請が必要となります。
Amazon CloudFront用のAWS マネージドプレフィックスリストを使用したオリジンへのアクセス制限
CloudFront マネージドプレフィックスリストは、ルートテーブルで 55 ルートとカウントされます。デフォルトのクォータは 50 ルートなので、ルートテーブルにプレフィックスリストを追加する前に、クォータの増加を要求する (リージョンは必要に応じて変更してください) 必要があります。
まとめ
この記事がどなたかのお役に立てば幸いです。